package com.ft.javaio.nio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;

/**
 * @Author RenPu
 * @Date 2023/7/18 16:11
 * @Version 1.0
 * @Description: 文件的共享锁：FileChannel在同一个JVM进程的多线程环境下，是线程安全的。
 *                但是在多个JVM进程下，且运行在不同服务器上FileChannel，存在线程安全问题。
 *                文件的共享锁使用场景，大家都可以看共享文件的内容，但是不允许更改里面的内容
 **/
public class FileLock_001 {


    public static void main(String[] args) throws Exception {
        FileInputStream inputStream = new FileInputStream("C:\\Users\\12795\\Desktop\\hello.txt");
        FileChannel channel = inputStream.getChannel();

        channel.lock(0, Integer.MAX_VALUE, true);
        Thread.sleep(60 * 60 * 1000);

        channel.close();
        inputStream.close();
    }

}
